package com.liyy.leetcode.editor.cn;

//题目编号:349
//题目标题:两个数组的交集	
//题目标记:intersection-of-two-arrays	

//题目描述:
//给定两个数组，编写一个函数来计算它们的交集。 
//
// 
//
// 示例 1： 
//
// 输入：nums1 = [1,2,2,1], nums2 = [2,2]
//输出：[2]
// 
//
// 示例 2： 
//
// 输入：nums1 = [4,9,5], nums2 = [9,4,9,8,4]
//输出：[9,4] 
//
// 
//
// 说明： 
//
// 
// 输出结果中的每个元素一定是唯一的。 
// 我们可以不考虑输出结果的顺序。 
// 
// Related Topics 排序 哈希表 双指针 二分查找

import com.sun.tools.classfile.Opcode;

import java.util.*;

public class IntersectionOfTwoArrays {
  
    public static void main(String[] args) {
       Solution solution = new IntersectionOfTwoArrays().new Solution();
       int [] nums1 = new int[] {1,2,3,4};
       int [] nums2 = new int[] {3,4,5,6};
        for (int i : solution.intersection(nums1, nums2)) {
            System.out.println(i);
        }
    }
  
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set1 = new HashSet<Integer>();
        Set<Integer> result = new HashSet<Integer>();

        for (int i : nums1) {
            set1.add(i);
        }

        for (int i : nums2) {
            if (set1.contains(i)) {
                result.add(i);
            }
        }

        int[] intersection = new int[result.size()];
        int index = 0;
        for (Integer j : result) {
            intersection[index++] = j;
        }


        return intersection;

    }
//leetcode submit region end(Prohibit modification and deletion)
}
}